package cn.stylefeng.guns.modular.gridsystem.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.modular.gridsystem.entity.BizDeviceStatusAssess;
import cn.stylefeng.guns.modular.gridsystem.model.param.BizDeviceStatusAssessParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 通道类型 服务类
 *
 * @author 乔李莱莱
 * @since 2023/10/17
 */
public interface BizDeviceStatusAssessService extends IService<BizDeviceStatusAssess> {

    /**
     * 分页查询通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     * @return
     */
    PageResult<Map<String, Object>> page(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 查询所有通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    List<BizDeviceStatusAssess> list(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 添加通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    Integer add(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 删除通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void delete(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 编辑通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    void edit(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 查看详情通道类型
     *
     * @author 乔李莱莱
     * @since 2023/10/17
     */
    BizDeviceStatusAssess detail(BizDeviceStatusAssessParam bizChannelTypeParam);

    /**
     * 设备状态评估_导出
     *
     * @param bizDeviceStatusAssessParam 被导出信息ID
     */
    void export(BizDeviceStatusAssessParam bizDeviceStatusAssessParam);

    /**
     * 设备状态评估_自定义导出
     *
     * @param stationId
     * @param deviceId
     * @param startTime
     * @param endTime
     */
    void exportCustom(Integer stationId, Integer deviceId, String startTime, String endTime);

    /**
     * 查询日志表总的上传数量：正常+故障
     */
    void assess();
}
